package dao.hero;


public class Dongji extends BaseHero {
	private int num;
	private int my_att;
	private int my_dex;
	public Dongji()
    {
       this.name="东冀";
       this.ID = 1370;
       this.HP = 805;
       this.maxHP=HP;
       this.ATT = 72;      
       this.DEF = 27;     
       this.DEX = 85;   
       this.blue = 360;
       this.sname1 = "普通攻击";
       this.sname2 = "专注冥思";
       this.sname3 = "霹雳火枪";
       this.sname4 = "拼命三郎";
       this.describe_skill1 = "技能详解：普通攻击，造成一定的物理伤害";
       this.describe_skill2 = "技能详解：耗蓝40，下回合所有攻击技能都必中，且有概率造成数倍伤害";
       this.describe_skill3 = "技能详解：耗蓝55，造成（50+攻击力）点真实伤害（无防御减免）";
       this.describe_skill4 = "技能详解：耗蓝150，将拼搏发挥到极致，强行获取强大力量，攻击力短时上升150%，敏捷上升50%，持续3回合";
       this.describe_hero = "人物介绍：勤奋拼搏，G142最勤奋程序猿，英雄定位为高输出高运气，综合型英雄";
       this.myluck= "优秀";
       num=99;
       headpath="image\\"+"djhead.png";
       bodypath="image\\"+"djbody.png";
       //head=Toolkit.getDefaultToolkit().getImage("image\\"+"xlhead.jpg");
}
	public void attack(int skill, BaseHero enemy) {
		// TODO Auto-generated method stub
		if(skill==1){
			skill1(enemy);
		}else if(skill==2){
			skill2(enemy);
		}else if(skill==3){
			skill3(enemy);
		}else if(skill==4){
			skill4(enemy);
		}
		blue+=15;
		if(num==3){//第三回合结束回复攻击力和敏捷力
			ATT=my_att;
			DEX=my_dex;
		}	
		num++;
	}


	public void skill1(BaseHero enemy) {
		// TODO 普通攻击
		int n=1;
		tip="";
		if(noDodge){//必中
			n= (int)(Math.random()%3)+1;//运气值高所以有3/2概率翻倍			
			tip+="由于专注冥思，必中！";
			if(n!=1){
				tip+="同时造成2倍伤害！";
			}else{
				tip+="同时造成3倍伤害！！！";
			}
				
		}
		blood=true;//掉血
		BaseHero.luck=(int)(Math.random()*10);//运气值随机数
		enemy.setLastHP(enemy.getHP());//重置上一次血量
		if((BaseHero.luck<1||isDodge(enemy))&&!noDodge){
			tip="普通攻击,"+enemy.getName()+"太敏捷了，竟然闪开了这次攻击";
		}else if(BaseHero.luck>5){
			enemy.setHP(enemy.getHP()-(ATT*2+BaseHero.luck*6)*(1-enemy.getDEF()/100)*n);
			tip=name+"状态不错，使出了会心一击，造成"+enemy.getName()+(int)(enemy.getLastHP()-enemy.getHP())+"伤害";
		}else {
			enemy.setHP(enemy.getHP()-(this.ATT+BaseHero.luck*4)*(1-enemy.getDEF()/100));
			tip=name+"普通攻击，造成"+enemy.getName()+(int)(enemy.getLastHP()-enemy.getHP()*n)+"伤害";
		}
	}

	public void skill2(BaseHero enemy) {
		// TODO 专注冥思
		blood=false;//掉血 下回合攻击必中，并有可能造成翻倍伤害
		if((blue-40)>0){//是否够蓝
			noDodge=true;
			tip=name+"进行专注冥思，下回合攻击必中，并有概率造成数倍伤害";
			blue-=40;
		}else {
			skill1(enemy);
		}
	}

	public void skill3(BaseHero enemy) {
		// TODO 耗蓝50，造成攻击力*（1-2）点真实伤害（无防御减免）
		setLastHP(getHP());
		blood=true;//掉血
		int n=1;
		tip="";
		enemy.setLastHP(enemy.getHP());//重置上一次血量
		BaseHero.luck = (int) (Math.random() * 2) + 1;// 运气值随机数

		if ((blue - 55) > 0) {// 是否够蓝
			if (!noDodge && isDodge(enemy)) {
				// 闪避了
				tip = "霹雳火枪," + enemy.getName() + "太敏捷了，竟然闪开了这次攻击";
			} else {// 没有闪避
				if (noDodge) {// 必中
					n = (int) (Math.random() % 3) + 1;// 运气值高所以有3/2概率翻倍
					tip += "由于专注冥思，必中！";
					if (n != 1) {
						tip += "同时造成2倍伤害！";
					} else {
						tip += "同时造成3倍伤害！！！";
					}

				}
				int hurry = (50 + ATT) * n;
				enemy.setHP(enemy.getHP() - hurry);
				System.out.println(ATT);
				tip += name + "使用霹雳火枪，造成了" + hurry + "点伤害";
			}
			blue -= 55;
			noDodge = false;// 恢复状态
		} else {
			skill1(enemy);
		}
		
		
		
	}

	public void skill4(BaseHero enemy) {
		// TODO 耗蓝150，将拼搏发挥到极致，强行获取强大力量，攻击力短时上升150%，敏捷上升50%，持续3回合";
		setLastHP(getHP());
		blood=true;//掉血
		if((blue-130)>0){//是否够蓝
			if(num<=3){//连续使用回合
				tip="您刚使用了此技能，3回合内无法重复使用";
				return;
			}
			num=0;
			my_att=ATT;//保存实际攻击力
			my_dex=DEX;//保存实际敏捷
			ATT=(int)(ATT*2.5);
			DEX=(int)(DEX*1.5);
			
			blue-=130;
			tip=name+"使出了大招拼命三郎，拼！拼！拼！攻击力、敏捷力大幅提升，当前攻击力为"+ATT+",敏捷为"+DEX;
		}else {
			skill1(enemy);
		}
		
	}
	public boolean isDodge(BaseHero enemy){
		//当前敏捷比敌人高，增加闪避率,否则降低闪避率
		double dodge=enemy.getDEX()*0.3+(enemy.getDEX()-DEX)*0.25;
		System.out.println("当前闪避率"+dodge);
		int rand=(int)(Math.random()*100);//运气值随机数
		if(rand<dodge){
			System.out.println("闪避了"+rand);
			return true;
		}else{
			System.out.println("闪不开"+rand);
			return false;
		}    
	}
}